Techniques For Hard Sudoku